package cn.yunbamboos.rest.service.auth.event;

import cn.yunbamboos.rest.service.ISession;
import jakarta.servlet.http.HttpServletRequest;

import java.util.Optional;

/**
 * 权限认证事件
 */
public record AuthenticationEvent(ISession session, HttpServletRequest request) {

    /**
     * 获取请求头信息
     *
     * @param key 请求头key
     * @return Optional 对应的value
     */
    public Optional<String> getHeader(String key) {
        return Optional.ofNullable(request.getHeader(key));
    }

    /**
     * 获取请求参数
     *
     * @param key 请求key
     * @return Optional 对应的value
     */
    public Optional<String> getParameter(String key) {
        return Optional.ofNullable(request.getParameter(key));
    }

    /**
     * 设置当前session内容
     *
     * @param key   session key
     * @param value session value
     */
    public void setSession(String key, String value) {
        session.set(key, value);
    }

}
